package jumavidesktop.Auxiliar.CargaDatos;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import jumavidesktop.Otros.Pojos.MyRespuesta;
import jumavidesktop.Persistencia.Dao.Implementaciones.DaoCamaras;
import jumavidesktop.Persistencia.Dao.Implementaciones.DaoMatriculas;
import jumavidesktop.Persistencia.Dao.Implementaciones.DaoMovimientos;
import jumavidesktop.Persistencia.Dao.Implementaciones.DaoUsuario;
import jumavidesktop.Persistencia.Dao.Interfaces.IDaoCamaras;
import jumavidesktop.Persistencia.Dao.Interfaces.IDaoMatriculas;
import jumavidesktop.Persistencia.Dao.Interfaces.IDaoMovimientos;
import jumavidesktop.Persistencia.Dao.Interfaces.IDaoUsuarios;
import jumavidesktop.Persistencia.entidades.Camara;
import jumavidesktop.Persistencia.entidades.Configanpr;
import jumavidesktop.Persistencia.entidades.Configdetectionmotion;
import jumavidesktop.Persistencia.entidades.EnumeracionesEntidades;
import jumavidesktop.Persistencia.entidades.Matricula;
import jumavidesktop.Persistencia.entidades.Movimientos;
import jumavidesktop.Persistencia.entidades.Usuario;

/**
 *
 * @author vimso
 */
public class CargaDatosPrueba {
    
    public static void main(String[] args) {
        System.out.println("Cargando los datos de la aplicación ");
        
        cargandoDatosAux.CargaConfigPatatero();
        
        CargaDatosPrueba carga=new CargaDatosPrueba();
        carga.cargarDatosEnBBDD();
        
    }
    public void cargarDatosEnBBDD()
    {
        this.cargarUsuarios();   
        this.cargarCamaras();
       this.CargarMovimientos();
    }
    
    public void CargarMovimientos()
    {
        IDaoMovimientos daoMovimientos= new DaoMovimientos();
        MyRespuesta res= daoMovimientos.registraMovimiento(this.movimiento1());
        res.agregarMyRespuesta(daoMovimientos.registraMovimiento(this.movimiento2()));
        res.agregarMyRespuesta(daoMovimientos.registraMovimiento(this.movimiento3()));
        res.agregarMyRespuesta(daoMovimientos.registraMovimiento(this.movimiento4()));
        res.agregarMyRespuesta(daoMovimientos.registraMovimiento(this.movimiento5()));
        res.agregarMyRespuesta(daoMovimientos.registraMovimiento(this.movimiento6()));
        res.agregarMyRespuesta(daoMovimientos.registraMovimiento(this.movimiento7()));
        res.agregarMyRespuesta(daoMovimientos.registraMovimiento(this.movimiento8()));
        res.agregarMyRespuesta(daoMovimientos.registraMovimiento(this.movimiento9()));
        if(!res.getTodoOK())
        {
            System.out.println(res.getMensajes().get(0));
        }
    }
    
    public void cargarUsuario()
    {
        IDaoUsuarios UsrDao= new DaoUsuario();
        MyRespuesta res=UsrDao.guardarUsuario(this.usuario1());
        if(!res.getTodoOK())
        {
            System.out.println(res.getMensajes().get(0));
        }
    }
    public void cargarUsuarios()
    {
        IDaoUsuarios UsrDao= new DaoUsuario();
        MyRespuesta res=UsrDao.guardarUsuario(this.usuario1());
        
        res.agregarMyRespuesta(UsrDao.guardarUsuario(this.usuario2()));
        res.agregarMyRespuesta(UsrDao.guardarUsuario(this.usuario3()));
        res.agregarMyRespuesta(UsrDao.guardarUsuario(this.usuario4()));
        res.agregarMyRespuesta(UsrDao.guardarUsuario(this.usuario5()));
        res.agregarMyRespuesta(UsrDao.guardarUsuario(this.usuario6()));
        res.agregarMyRespuesta(UsrDao.guardarUsuario(this.usuario8()));
        res.agregarMyRespuesta(UsrDao.guardarUsuario(this.usuario9()));
        
        if(!res.getTodoOK())
        {
            System.out.println(res.getMensajes().get(0));
        }
    }
    
    //<editor-fold defaultstate="collapsed" desc="Usuarios datos">
    
    
    public Usuario usuario1()
    {
        Usuario usr= new Usuario();
        usr.setApellidos("Sánchez Osuna");
        usr.setDni("12626231V");
        usr.setMovil("695959159");        
        usr.setNombre("Víctor Manuel");
        usr.setTelefono("952301020");
        usr.setActivo(true);
        
        List<Matricula> matriculas= new ArrayList<Matricula>();
        Matricula mtr= this.matricula1();
        mtr.setUsuario(usr);
        matriculas.add(mtr);
        usr.setMatriculaList(matriculas);
        
        return usr;
    }
    
        public Usuario usuario6()
    {
        Usuario usr= new Usuario();
        usr.setApellidos("Claros");
        usr.setDni("21662891Z");
        usr.setMovil("695959159");        
        usr.setNombre("Guillermina");
        usr.setTelefono("952301020");
        usr.setActivo(true);
        
        List<Matricula> matriculas= new ArrayList<Matricula>();
        Matricula mtr= this.matricula7();
        mtr.setUsuario(usr);
        matriculas.add(mtr);
        usr.setMatriculaList(matriculas);
        return usr;
    }
        public Usuario usuario8()
    {
        Usuario usr= new Usuario();
        usr.setApellidos("Somodevilla");
        usr.setDni("17815829G");
        usr.setMovil("695959159");        
        usr.setNombre("Luis Javier");
        usr.setTelefono("952301020");
        usr.setActivo(true);
        
        List<Matricula> matriculas= new ArrayList<Matricula>();
        Matricula mtr= this.matricula8();
        mtr.setUsuario(usr);
        matriculas.add(mtr);
        usr.setMatriculaList(matriculas);
        return usr;
    }
        public Usuario usuario9()
    {
        Usuario usr= new Usuario();
        usr.setApellidos("Calderón");
        usr.setDni("22678912A");
        usr.setMovil("695959159");        
        usr.setNombre("Arturo");
        usr.setTelefono("952301020");
        usr.setActivo(true);
        
        List<Matricula> matriculas= new ArrayList<Matricula>();
        Matricula mtr= this.matricula9();
        mtr.setUsuario(usr);
        matriculas.add(mtr);
        usr.setMatriculaList(matriculas);
        return usr;
    }
    
    public Usuario usuario2()
    {
        Usuario usr= new Usuario();
        usr.setApellidos("Toro Rivas");
        usr.setDni("32626891A");
        usr.setMovil("689259159");
        usr.setNombre("Manuel");
        usr.setTelefono("9583321020");
        usr.setActivo(true);
        
        List<Matricula> matriculas= new ArrayList<Matricula>();
        Matricula mtr= this.matricula2();
        mtr.setUsuario(usr);
        matriculas.add(mtr);
        usr.setMatriculaList(matriculas);
        
        return usr;
    }
    
    public Usuario usuario3()
    {
        Usuario usr= new Usuario();
        usr.setApellidos("García valentín");
        usr.setDni("22828286K");
        usr.setMovil("682691723");
        usr.setNombre("Juan Carlos");
        usr.setTelefono("953727110");
        usr.setActivo(true);
        
        List<Matricula> matriculas= new ArrayList<Matricula>();
        Matricula mtr= this.matricula3();
        mtr.setUsuario(usr);
        matriculas.add(mtr);
        usr.setMatriculaList(matriculas);
        
        return usr;
    }
    
    public Usuario usuario4()
    {
        Usuario usr= new Usuario();
        usr.setApellidos("Alcaide");
        usr.setDni("23123231G");
        usr.setMovil("623231259");
        usr.setNombre("Rafa");
        usr.setTelefono("956123020");
        usr.setActivo(true);
        
        List<Matricula> matriculas= new ArrayList<Matricula>();
        Matricula mtr= this.matricula4();
        mtr.setUsuario(usr);
        matriculas.add(mtr);
        usr.setMatriculaList(matriculas);
        
        return usr;
    }
    
    public Usuario usuario5()
    {
        Usuario usr= new Usuario();
        usr.setApellidos("Quero");
        usr.setDni("26987152J");
        usr.setMovil("657203011");
        usr.setNombre("Ignacio");
        usr.setTelefono("957203011");
        usr.setActivo(true);
        
        List<Matricula> matriculas= new ArrayList<Matricula>();
        Matricula mtr= this.matricula5();
        mtr.setUsuario(usr);        
        matriculas.add(mtr);
        
        mtr= this.matricula6();
        mtr.setUsuario(usr);
        matriculas.add(mtr);
        
        usr.setMatriculaList(matriculas);
        
        return usr;
    }
    //</editor-fold>
    //<editor-fold defaultstate="collapsed" desc="Matriculas datos">
    public Matricula matricula1()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("5557BJP");
        return matricula;
    }
    public Matricula matricula2()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("CO3562AK");
        return matricula;
    }
    public Matricula matricula3()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("3462DXS");
        return matricula;
    }
    public Matricula matricula4()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("9217DNL");
        return matricula;
    }
    public Matricula matricula5()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("8717CXW");
        return matricula;
    }
    public Matricula matricula6()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("1836CDB");
        return matricula;
    }
    public Matricula matricula7()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("9892FKX");
        return matricula;
    }
    public Matricula matricula8()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("5921GMJ");
        return matricula;
    }
    
    public Matricula matricula9()
    {
        Matricula matricula= new Matricula();
        matricula.setFechaAlta(Calendar.getInstance().getTime());
        matricula.setMatricula("7682FZJ");
        return matricula;
    }
    
    //</editor-fold>
    //<editor-fold defaultstate="collapsed" desc="Camaras">    
    public void cargarCamaras()
    {
        MyRespuesta res=  new MyRespuesta();
        IDaoCamaras camarasDao = new DaoCamaras();        
        res.agregarMyRespuesta(camarasDao.guardarCamara(this.getCamara1()));

        if (!res.getTodoOK()) {
            for (String elemento : res.getMensajes()) {
                    System.out.println(elemento);
            }
        }                
    }
    //<editor-fold defaultstate="collapsed" desc="Datos de camaras">
    //<editor-fold defaultstate="collapsed" desc="camaras">
    public Camara getCamara1()
    {
        
        Camara camara= new Camara();
        camara.setActivo(false);
        
        Configanpr cAnpr= new Configanpr();
        cAnpr.setSizeMax(80);
        cAnpr.setSizeMin(5);
        cAnpr.setCamara(camara);

        camara.setConfiganpr(cAnpr);
        
        Configdetectionmotion motion= this.confDetec1();
        motion.setCamara(camara);
        camara.setConfigdetectionmotion(motion);
        
        camara.setDescripcion("Camara1 Descripcion");        
        camara.setNombre("Camara1");
        camara.setTipoCamara(EnumeracionesEntidades.TipoCamara.ENTRADA);
        return  camara;
        
    }
    
    //</editor-fold>
    //<editor-fold defaultstate="collapsed" desc="ConfigANPR">
    
    //</editor-fold>
    //<editor-fold defaultstate="collapsed" desc="ConfigDetectMotion">
    
    public Configdetectionmotion confDetec1()
    {
        Configdetectionmotion motion = new Configdetectionmotion();

        motion.setDatosRecursos("Algo");
        motion.setSizeCuadrado(5);
        motion.setTipoRecurso(EnumeracionesEntidades.TipoRecursoMotion.VIDEO);
        motion.setUmbralSensibilidad(10);
        return motion;
    }
    
    //</editor-fold>
    //</editor-fold>
    
    //</editor-fold>
    //<editor-fold defaultstate="collapsed" desc="Movimientos">
    public Movimientos movimiento1()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario1().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.ENTRADA);
        mov1.setFoto("");
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 19,20,3,38);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    public Movimientos movimiento2()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario2().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.ENTRADA);
        mov1.setFoto("");        
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 30,18,15,55);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    public Movimientos movimiento3()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario3().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.ENTRADA);
        mov1.setFoto("");
        
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 30,16,50,32);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    public Movimientos movimiento4()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario4().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.ENTRADA);
        mov1.setFoto("");
        
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 29,12,57,20);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    public Movimientos movimiento5()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario5().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.ENTRADA);
        mov1.setFoto("");
        
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 11,14,20,31);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    public Movimientos movimiento6()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario6().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.ENTRADA);
        mov1.setFoto("");
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 18,8,28,50);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    public Movimientos movimiento7()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario6().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.SALIDA);
        mov1.setFoto("");
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 29,8,15,23);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    public Movimientos movimiento8()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario8().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.ENTRADA);
        mov1.setFoto("");
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 22,13,20,21);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    public Movimientos movimiento9()
    {
        Movimientos mov1= new Movimientos();
        
        //Obtengo los datos del DAO
        IDaoCamaras daoCamaras= new DaoCamaras();
        IDaoMatriculas daoMatriculas= new DaoMatriculas();
        
        Camara camara= daoCamaras.encuentraPorNombre(this.getCamara1().getNombre());
        Matricula matricula=daoMatriculas.encuentraPorMatricula(this.usuario9().getMatriculaList().get(0).getMatricula());
        
        mov1.setCamaraid(camara);
        mov1.setMatricula(matricula);
        mov1.setMovimiento(EnumeracionesEntidades.TipoMovimiento.SALIDA);
        mov1.setFoto("");
        Calendar c=Calendar.getInstance();
        c.set(2013, 5, 30,19,50,21);
        mov1.setFechaYHora(c.getTime());
        
        return mov1;
    }
    //</editor-fold>
    
    
    public static  List<Configdetectionmotion> confSimu1() 
    {
        List<Configdetectionmotion> lista = new ArrayList<Configdetectionmotion>();
        Configdetectionmotion cDetec= new Configdetectionmotion();
        cDetec.setSizeCuadrado(10);
        cDetec.setUmbralSensibilidad(20);
        
        if (true) {
            //El video
            cDetec.setTipoRecurso(EnumeracionesEntidades.TipoRecursoMotion.VIDEO);
            //cDetec.setDatosRecursos("C:\\phantom.mpg");
            //cDetec.setDatosRecursos("C:\\IONX0006_640.mpg");
           // cDetec.setDatosRecursos("C:\\videos\\mpeg\\IMG_0540 (1).mpg");
            cDetec.setDatosRecursos("C:\\Users\\vimso\\Videos\\IONX0006_640-DivX - Movie(1).avi");
            //cDetec.setDatosRecursos("C:\\FFOutput\\IONX0006_640~1.mpg");
        } else {

            //La CAM o una ip
            cDetec.setTipoRecurso(EnumeracionesEntidades.TipoRecursoMotion.URL);
            cDetec.setDatosRecursos("vfw://0");
        }
        lista.add(cDetec);
        return lista;
    }
}
